<html><head><title>SEDM.bo3d reference</title>
<link rel=stylesheet Type=text/css href='../../../../doc/bmxstyle.css'>
</head><body>
<table width=100% cellspacing=0><tr align=center><td class=small>&nbsp;</td>
<td class=small width=1%><b>sedm.bo3d:</b></td>
<td class=small width=1%><a href=#types class=small>Types</a></td>
<td class=small width=1%><a href=#modinfo class=small>Modinfo</a></td>
<td class=small width=1%><a href='../../../../mod/sedm.mod/bo3d.mod/bo3d.bmx' class=small>Source</a></td>
<td class=small>&nbsp;</td></tr></table>
<h1>SEDM.bo3d</h1>
<h2><a name=types></a>Types Summary</h2><table class=doc width=100%>
<tr><td class=docleft width=1%><a href=#AxisAlignedBox>AxisAlignedBox</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#BaseObject>BaseObject</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#Camera>Camera</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#CompositorManager>CompositorManager</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#Entity>Entity</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#GpuProgramParameters>GpuProgramParameters</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#Light>Light</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#Material>Material</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#Pass>Pass</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#RenderSystem>RenderSystem</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#RenderWindow>RenderWindow</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#ResourceGroupManager>ResourceGroupManager</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#Root>Root</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#SceneManager>SceneManager</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#SceneNode>SceneNode</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#Technique>Technique</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#Viewport>Viewport</a></td><td class=docright>
&nbsp;
</td></tr>
</table>
<h2
 id=typesdet>Types
</h2>
<table class=doc width=100% cellspacing=3 id=AxisAlignedBox>
<tr><td class=doctop colspan=2>Type AxisAlignedBox</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=AxisAlignedBox_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#GetSize>GetSize</a></td><td class=docright>
Gets the size of the box.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetSize>
<tr><td class=doctop colspan=2>Method GetSize:Vector3()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the size of the box.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=BaseObject>
<tr><td class=doctop colspan=2>Type BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=BaseObject_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#getName>getName</a></td><td class=docright>
Returns the name of this object.
</td></tr>
<tr><td class=docleft width=1%><a href=#getType>getType</a></td><td class=docright>
Returns the type name of this object.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getName>
<tr><td class=doctop colspan=2>Method getName:String()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the name of this object.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getType>
<tr><td class=doctop colspan=2>Method getType:String()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the type name of this object.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=Camera>
<tr><td class=doctop colspan=2>Type Camera Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=Camera_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#GetPosition>GetPosition</a></td><td class=docright>
Retrieves the camera's position.
</td></tr>
<tr><td class=docleft width=1%><a href=#GetViewport>GetViewport</a></td><td class=docright>
Get the last viewport which was attached to this camera.
</td></tr>
<tr><td class=docleft width=1%><a href=#moveRelative>moveRelative</a></td><td class=docright>
Moves the camera's position by the vector offset provided along it's own axes (relative to orientation).
</td></tr>
<tr><td class=docleft width=1%><a href=#pitch>pitch</a></td><td class=docright>
Pitches the camera up/down anticlockwise around it's local z axis.
</td></tr>
<tr><td class=docleft width=1%><a href=#roll>roll</a></td><td class=docright>
Rolls the camera anticlockwise, around its local z axis.
</td></tr>
<tr><td class=docleft width=1%><a href=#setAspectRatio>setAspectRatio</a></td><td class=docright>
Sets the aspect ratio for the frustum viewport.
</td></tr>
<tr><td class=docleft width=1%><a href=#setFarClipDistance>setFarClipDistance</a></td><td class=docright>
Sets the distance to the far clipping plane.
</td></tr>
<tr><td class=docleft width=1%><a href=#setNearClipDistance>setNearClipDistance</a></td><td class=docright>
Sets the position of the near clipping plane.
</td></tr>
<tr><td class=docleft width=1%><a href=#SetPosition>SetPosition</a></td><td class=docright>
Sets the camera's position.
</td></tr>
<tr><td class=docleft width=1%><a href=#yaw>yaw</a></td><td class=docright>
Rotates the camera anticlockwise around it's local y axis.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetPosition>
<tr><td class=doctop colspan=2>Method GetPosition:Vector3()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Retrieves the camera's position.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetViewport>
<tr><td class=doctop colspan=2>Method GetViewport:Viewport()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Get the last viewport which was attached to this camera.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This is not guaranteed to be the only viewport which is using this camera, just the last once which was created referring to it.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=moveRelative>
<tr><td class=doctop colspan=2>Method moveRelative(vec3:Vector3)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Moves the camera's position by the vector offset provided along it's own axes (relative to orientation).</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=pitch>
<tr><td class=doctop colspan=2>Method pitch(radian:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Pitches the camera up/down anticlockwise around it's local z axis.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=roll>
<tr><td class=doctop colspan=2>Method roll(radian:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Rolls the camera anticlockwise, around its local z axis.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setAspectRatio>
<tr><td class=doctop colspan=2>Method setAspectRatio(ratio:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the aspect ratio for the frustum viewport.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>The ratio between the x and y dimensions of the rectangular area visible through
the frustum is known as aspect ratio: aspect = width / height .</p>
<p>The default for most fullscreen windows is 1.3333 - this is also assumed by Ogre unless
you use this method to state otherwise.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setFarClipDistance>
<tr><td class=doctop colspan=2>Method setFarClipDistance(farClipDistance:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the distance to the far clipping plane.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>The view frustum is a pyramid created from the frustum position and the edges of the viewport. This method sets
the distance for the far end of that pyramid. Different applications need different values: e.g. a flight sim needs a
much further far clipping plane than a first-person shooter. An important point here is that the larger the ratio between
near and far clipping planes, the lower the accuracy of the Z-buffer used to depth-cue pixels. This is because the Z-range
is limited to the size of the Z buffer (16 or 32-bit) and the max values must be spread over the gap between near and far
clip planes. As it happens, you can affect the accuracy far more by altering the near distance rather than the far distance,
but keep this in mind.</p>
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border"0">
<tr>
<td><i>far</i></td>
<td>
The distance to the far clipping plane from the frustum in world coordinates.If you specify 0, this means an infinite
view distance which is useful especially when projecting shadows; but be careful not to use a near distance too close.
</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setNearClipDistance>
<tr><td class=doctop colspan=2>Method setNearClipDistance(nearClipDistance:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the position of the near clipping plane.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>The position of the near clipping plane is the distance from the frustums position to the screen on which
the world is projected. The near plane distance, combined with the field-of-view and the aspect ratio, determines
the size of the viewport through which the world is viewed (in world co-ordinates). Note that this world viewport
is different to a screen viewport, which has it's dimensions expressed in pixels. The frustums viewport should have
the same aspect ratio as the screen viewport it renders into to avoid distortion.</p>
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td><i>near</i></td><td>The distance to the near clipping plane from the frustum in world coordinates.</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=SetPosition>
<tr><td class=doctop colspan=2>Method SetPosition(x:Float, y:Float, z:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the camera's position.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=yaw>
<tr><td class=doctop colspan=2>Method yaw(radian:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Rotates the camera anticlockwise around it's local y axis.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=CompositorManager>
<tr><td class=doctop colspan=2>Type CompositorManager</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=CompositorManager_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#addCompositor>addCompositor</a></td><td class=docright>
Add a compositor to a viewport.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=addCompositor>
<tr><td class=doctop colspan=2>Method addCompositor(vport:Viewport, compositor:String, addPosition:Int = -1)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Add a compositor to a viewport.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>By default, it is added to end of the chain, after the other compositors.</p>
<p><b>Parameter:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr><td><i>vp</i></td><td>Viewport to modify</td></tr>
<tr><td><i>compositor</i></td><td>The name of the compositor to apply</td></tr>
<tr><td><i>addPosition</i></td><td>At which position to add, defaults to the end (-1).</td></tr>
</table></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=Entity>
<tr><td class=doctop colspan=2>Type Entity Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=Entity_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#clone>clone</a></td><td class=docright>
Clones this entity and returns a pointer to the clone.
</td></tr>
<tr><td class=docleft width=1%><a href=#getBounds>getBounds</a></td><td class=docright>
Get the axis-aligned bounding box for this mesh.
</td></tr>
<tr><td class=docleft width=1%><a href=#GetMaterial>GetMaterial</a></td><td class=docright>
Retrieves a weak reference to the material this renderable object uses.
</td></tr>
<tr><td class=docleft width=1%><a href=#getMesh>getMesh</a></td><td class=docright>
Gets the Mesh  that this Entity is based on.
</td></tr>
<tr><td class=docleft width=1%><a href=#GetPosition>GetPosition</a></td><td class=docright>
Gets the position of the node relative to it's parent.
</td></tr>
<tr><td class=docleft width=1%><a href=#setCastShadows>setCastShadows</a></td><td class=docright>
Sets whether or not this object will cast shadows.
</td></tr>
<tr><td class=docleft width=1%><a href=#SetMaterial>SetMaterial</a></td><td class=docright>
Sets the material to use for the whole of this entity.
</td></tr>
<tr><td class=docleft width=1%><a href=#setMaterialName>setMaterialName</a></td><td class=docright>
Sets the material to use for the whole of this entity.
</td></tr>
<tr><td class=docleft width=1%><a href=#SetPosition>SetPosition</a></td><td class=docright>
Sets the position of the node relative to it's parent.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=clone>
<tr><td class=doctop colspan=2>Method clone:Entity(newName:String = "")</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Clones this entity and returns a pointer to the clone.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Useful method for duplicating an entity. The new entity must be given a unique name, and
is not attached to the scene in any way so must be attached to a SceneNode to be visible
(exactly as entities returned from SceneManager::createEntity).</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getBounds>
<tr><td class=doctop colspan=2>Method getBounds:AxisAlignedBox()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Get the axis-aligned bounding box for this mesh.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetMaterial>
<tr><td class=doctop colspan=2>Method GetMaterial:Material(subEntity:Int = 0)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Retrieves a weak reference to the material this renderable object uses.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Note that the Renderable also has the option to override the getTechnique method to
specify a particular Technique to use instead of the best one available.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getMesh>
<tr><td class=doctop colspan=2>Method getMesh:Mesh()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the Mesh  that this Entity is based on.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetPosition>
<tr><td class=doctop colspan=2>Method GetPosition:Vector3()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the position of the node relative to it's parent.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setCastShadows>
<tr><td class=doctop colspan=2>Method setCastShadows(enable:Byte)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets whether or not this object will cast shadows.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This setting simply allows you to turn on/off shadows for a given object. An object will
not cast shadows unless the scene supports it in any case (see SceneManager::setShadowTechnique),
and also the material which is in use must also have shadow casting enabled. By default all
entities cast shadows. If, however, for some reason you wish to disable this for a single object
then you can do so using this method.</p>
<b><b>Note:</b> This method normally refers to objects which block the light, but since Light is
also a subclass of MovableObject, in that context it means whether the light causes shadows itself.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=SetMaterial>
<tr><td class=doctop colspan=2>Method SetMaterial(mat:Material)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the material to use for the whole of this entity.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This is a shortcut method to set all the materials for all subentities of this entity.
Only use this method is you want to set the same material for all subentities or if you know
there is only one. Otherwise call getSubEntity()  and call the same method on the individual
SubEntity.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setMaterialName>
<tr><td class=doctop colspan=2>Method setMaterialName(matName:String, resGroup:String = "AUTODETECT_RESOURCE_GROUP_NAME")</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the material to use for the whole of this entity.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This is a shortcut method to set all the materials for all subentities of this entity.
Only use this method is you want to set the same material for all subentities or if you know
there is only one. Otherwise call getSubEntity()  and call the same method on the individual
SubEntity.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=SetPosition>
<tr><td class=doctop colspan=2>Method SetPosition(x:Float, y:Float, z:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the position of the node relative to it's parent.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=GpuProgramParameters>
<tr><td class=doctop colspan=2>Type GpuProgramParameters Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=GpuProgramParameters_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#setNamedConstant>setNamedConstant</a></td><td class=docright>
Sets a single value constant floating-point parameter to the program.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setNamedConstant>
<tr><td class=doctop colspan=2>Method setNamedConstant(cname:String, v:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets a single value constant floating-point parameter to the program.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>Different types of GPU programs support different types of constant parameters. For example,
it's relatively common To find that vertex programs only support floating point constants, And that
fragment programs only support integer (fixed point) parameters. This can vary depending on the program
version supported by the Graphics card being used. You should consult the documentation For the Type of
low level program you are using, Or alternatively use the Methods provided on RenderSystemCapabilities
To determine the options.<p>
<p>Another possible limitation is that some systems only allow constants to be set on certain boundaries,
e.g. in sets of 4 values for example. Again, see RenderSystemCapabilities for full details.</p>
<p><b>Note:</b> This named option will only work if you are using a parameters object created from a
high-level program (HighLevelGpuProgram).</p></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=Light>
<tr><td class=doctop colspan=2>Type Light Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=Light_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#getAttenuationConstant>getAttenuationConstant</a></td><td class=docright>
Returns the constant factor in the attenuation formula.
</td></tr>
<tr><td class=docleft width=1%><a href=#getAttenuationLinear>getAttenuationLinear</a></td><td class=docright>
Returns the linear factor in the attenuation formula.
</td></tr>
<tr><td class=docleft width=1%><a href=#getAttenuationQuadric>getAttenuationQuadric</a></td><td class=docright>
Returns the quadric factor in the attenuation formula.
</td></tr>
<tr><td class=docleft width=1%><a href=#getAttenuationRange>getAttenuationRange</a></td><td class=docright>
Returns the absolute upper range of the light.
</td></tr>
<tr><td class=docleft width=1%><a href=#getDiffuseColour>getDiffuseColour</a></td><td class=docright>
Returns the colour of the diffuse light given off by this light source (see setDiffuseColour for more info).
</td></tr>
<tr><td class=docleft width=1%><a href=#getDirection>getDirection</a></td><td class=docright>
Returns the light's direction.
</td></tr>
<tr><td class=docleft width=1%><a href=#getName>getName</a></td><td class=docright>
Returns the name of this object.
</td></tr>
<tr><td class=docleft width=1%><a href=#getParentNode>getParentNode</a></td><td class=docright>
Returns the node to which this object is attached.
</td></tr>
<tr><td class=docleft width=1%><a href=#getParentSceneNode>getParentSceneNode</a></td><td class=docright>
Returns the scene node to which this object is attached.
</td></tr>
<tr><td class=docleft width=1%><a href=#GetPosition>GetPosition</a></td><td class=docright>
Returns the position of the light.
</td></tr>
<tr><td class=docleft width=1%><a href=#getPowerScale>getPowerScale</a></td><td class=docright>
Returns the scaling factor which indicates the relative power of a light.
</td></tr>
<tr><td class=docleft width=1%><a href=#getShadowFarClipDistance>getShadowFarClipDistance</a></td><td class=docright>
Get the far clip plane distance to be used by the shadow camera, if this light casts texture shadows.
</td></tr>
<tr><td class=docleft width=1%><a href=#getShadowFarDistance>getShadowFarDistance</a></td><td class=docright>
Gets the maximum distance away from the camera that shadows by this light will be visible.
</td></tr>
<tr><td class=docleft width=1%><a href=#getShadowNearClipDistance>getShadowNearClipDistance</a></td><td class=docright>
Get the near clip plane distance to be used by the shadow camera, if this light casts texture shadows.
</td></tr>
<tr><td class=docleft width=1%><a href=#getSpecularColour>getSpecularColour</a></td><td class=docright>
Returns the colour of specular light given off by this light source.
</td></tr>
<tr><td class=docleft width=1%><a href=#getSpotlightFalloff>getSpotlightFalloff</a></td><td class=docright>
Returns the falloff between the inner and outer cones of the spotlight.
</td></tr>
<tr><td class=docleft width=1%><a href=#getSpotlightInnerAngle>getSpotlightInnerAngle</a></td><td class=docright>
Returns the angle covered by the spotlights inner cone.
</td></tr>
<tr><td class=docleft width=1%><a href=#getSpotlightOuterAngle>getSpotlightOuterAngle</a></td><td class=docright>
Returns the angle covered by the spotlights outer cone.
</td></tr>
<tr><td class=docleft width=1%><a href=#resetShadowFarDistance>resetShadowFarDistance</a></td><td class=docright>
Tells the light to use the shadow far distance of the SceneManager.
</td></tr>
<tr><td class=docleft width=1%><a href=#setAttenuation>setAttenuation</a></td><td class=docright>
Sets the attenuation parameters of the light source i.e. how it diminishes with distance.
</td></tr>
<tr><td class=docleft width=1%><a href=#setCastShadows>setCastShadows</a></td><td class=docright>
Sets whether or not this object will cast shadows.
</td></tr>
<tr><td class=docleft width=1%><a href=#setDiffuseColour>setDiffuseColour</a></td><td class=docright>
Sets the colour of the diffuse light given off by this source.
</td></tr>
<tr><td class=docleft width=1%><a href=#setDirection>setDirection</a></td><td class=docright>
Sets the direction in which a light points.
</td></tr>
<tr><td class=docleft width=1%><a href=#SetPosition>SetPosition</a></td><td class=docright>
Sets the position of the light.
</td></tr>
<tr><td class=docleft width=1%><a href=#setPowerScale>setPowerScale</a></td><td class=docright>
Set a scaling factor to indicate the relative power of a light.
</td></tr>
<tr><td class=docleft width=1%><a href=#setShadowFarClipDistance>setShadowFarClipDistance</a></td><td class=docright>
Set the far clip plane distance to be used by the shadow camera, if this light casts texture shadows.
</td></tr>
<tr><td class=docleft width=1%><a href=#setShadowFarDistance>setShadowFarDistance</a></td><td class=docright>
Sets the maximum distance away from the camera that shadows by this light will be visible.
</td></tr>
<tr><td class=docleft width=1%><a href=#setShadowNearClipDistance>setShadowNearClipDistance</a></td><td class=docright>
Set the near clip plane distance to be used by the shadow camera, if this light casts texture shadows.
</td></tr>
<tr><td class=docleft width=1%><a href=#setSpecularColour>setSpecularColour</a></td><td class=docright>
Sets the colour of the specular light given off by this source.
</td></tr>
<tr><td class=docleft width=1%><a href=#setSpotlightFalloff>setSpotlightFalloff</a></td><td class=docright>
Sets the angle covered by the spotlights outer cone.
</td></tr>
<tr><td class=docleft width=1%><a href=#setSpotlightInnerAngle>setSpotlightInnerAngle</a></td><td class=docright>
Sets the angle covered by the spotlights inner cone.
</td></tr>
<tr><td class=docleft width=1%><a href=#setSpotlightOuterAngle>setSpotlightOuterAngle</a></td><td class=docright>
Sets the angle covered by the spotlights outer cone.
</td></tr>
<tr><td class=docleft width=1%><a href=#setSpotlightRange>setSpotlightRange</a></td><td class=docright>
Sets the range of a spotlight, i.e. the angle of the inner and outer cones and the rate of falloff between them.
</td></tr>
<tr><td class=docleft width=1%><a href=#setType>setType</a></td><td class=docright>
Sets the type of light - see LightTypes for more info.
</td></tr>
<tr><td class=docleft width=1%><a href=#setVisible>setVisible</a></td><td class=docright>
Although lights themselves are not 'visible', setting a light to invisible means it no longer affects the scene.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getAttenuationConstant>
<tr><td class=doctop colspan=2>Method getAttenuationConstant:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the constant factor in the attenuation formula.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getAttenuationLinear>
<tr><td class=doctop colspan=2>Method getAttenuationLinear:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the linear factor in the attenuation formula.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getAttenuationQuadric>
<tr><td class=doctop colspan=2>Method getAttenuationQuadric:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the quadric factor in the attenuation formula.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getAttenuationRange>
<tr><td class=doctop colspan=2>Method getAttenuationRange:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the absolute upper range of the light.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getDiffuseColour>
<tr><td class=doctop colspan=2>Method getDiffuseColour:ColourValue()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the colour of the diffuse light given off by this light source (see setDiffuseColour for more info).</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getDirection>
<tr><td class=doctop colspan=2>Method getDirection:Vector3()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the light's direction.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Applicable only to the spotlight and directional light types.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getName>
<tr><td class=doctop colspan=2>method getName:String()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the name of this object.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getParentNode>
<tr><td class=doctop colspan=2>Method getParentNode:SceneNode()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the node to which this object is attached.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getParentSceneNode>
<tr><td class=doctop colspan=2>Method getParentSceneNode:SceneNode()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the scene node to which this object is attached.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetPosition>
<tr><td class=doctop colspan=2>Method GetPosition:Vector3()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the position of the light.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Applicable to point lights and spotlights only.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getPowerScale>
<tr><td class=doctop colspan=2>Method getPowerScale:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the scaling factor which indicates the relative power of a light.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getShadowFarClipDistance>
<tr><td class=doctop colspan=2>Method getShadowFarClipDistance:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Get the far clip plane distance to be used by the shadow camera, if this light casts texture shadows.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>May be zero if the light doesn't have it's own far distance set; use _deriveShadowfarDistance for a version guaranteed to give a result.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getShadowFarDistance>
<tr><td class=doctop colspan=2>Method getShadowFarDistance:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the maximum distance away from the camera that shadows by this light will be visible.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getShadowNearClipDistance>
<tr><td class=doctop colspan=2>Method getShadowNearClipDistance:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Get the near clip plane distance to be used by the shadow camera, if this light casts texture shadows.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>May be zero if the light doesn't have it's own near distance set; use _deriveShadowNearDistance for a version guaranteed to give a result.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getSpecularColour>
<tr><td class=doctop colspan=2>Method getSpecularColour:ColourValue()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the colour of specular light given off by this light source.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getSpotlightFalloff>
<tr><td class=doctop colspan=2>Method getSpotlightFalloff:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the falloff between the inner and outer cones of the spotlight.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getSpotlightInnerAngle>
<tr><td class=doctop colspan=2>Method getSpotlightInnerAngle:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the angle covered by the spotlights inner cone.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getSpotlightOuterAngle>
<tr><td class=doctop colspan=2>Method getSpotlightOuterAngle:Float()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the angle covered by the spotlights outer cone.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=resetShadowFarDistance>
<tr><td class=doctop colspan=2>Method resetShadowFarDistance()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Tells the light to use the shadow far distance of the SceneManager.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setAttenuation>
<tr><td class=doctop colspan=2>Method setAttenuation(rng:Float, constant:Float, linear:Float, quadratic:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the attenuation parameters of the light source i.e. how it diminishes with distance.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>Lights normally get fainter the further they are away. Also, each light is given a
maximum range beyond which it cannot affect any objects.</p>
<p>Light attenuation is not applicable to directional lights since they have an infinite range
and constant intensity.</p>
<p>This follows a standard attenuation approach - see any good 3D text for the details of what
they mean since i don't have room here!</p>
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td>
<i>range</i>
</td>
<td>
The absolute upper range of the light in world units
</td>
</tr>
<tr>
<td>
<i>constant</i>
</td>
<td>
The constant factor in the attenuation formula: 1.0 means never attenuate, 0.0 is complete attenuation
</td>
</tr>
<tr>
<td>
<i>linear</i>
</td>
<td>
The linear factor in the attenuation formula: 1 means attenuate evenly over the distance
</td>
</tr>
<tr>
<td>
<i>quadratic</i>
</td>
<td>
The quadratic factor in the attenuation formula: adds a curvature to the attenuation formula.
</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setCastShadows>
<tr><td class=doctop colspan=2>Method setCastShadows(enable:Byte)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets whether or not this object will cast shadows.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This setting simply allows you to turn on/off shadows for a given object. An object will not cast shadows unless the
scene supports it in any case (see SceneManager::setShadowTechnique), and also the material which is in use must also have shadow
casting enabled. By default all entities cast shadows. If, however, for some reason you wish to disable this for a single object
then you can do so using this method.</p>
<p><b>Note:</b> This method normally refers to objects which block the light, but since Light is also a subclass of MovableObject,
in that context it means whether the light causes shadows itself.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setDiffuseColour>
<tr><td class=doctop colspan=2>Method setDiffuseColour(r:Float, g:Float, b:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the colour of the diffuse light given off by this source.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>Material  objects have ambient, diffuse and specular values which indicate how
much of each type of light an object reflects. This value denotes the amount and colour of
this type of light the light exudes into the scene. The actual appearance of objects is a
combination of the two.</p>
<p>Diffuse light simulates the typical light emanating from light sources and affects the
base colour of objects together with ambient light.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setDirection>
<tr><td class=doctop colspan=2>Method setDirection(x:Float, y:Float, z:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the direction in which a light points.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Applicable only to the spotlight and directional light types.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=SetPosition>
<tr><td class=doctop colspan=2>Method SetPosition(x:Float, y:Float, z:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the position of the light.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Applicable to point lights and spotlights only. Parameters
will be overridden if the light is attached to a SceneNode.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setPowerScale>
<tr><td class=doctop colspan=2>Method setPowerScale(power:Float = 1.0)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Set a scaling factor to indicate the relative power of a light.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This factor is only useful in High Dynamic Range (HDR) rendering. You can bind it to a shader variable to take it into account.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setShadowFarClipDistance>
<tr><td class=doctop colspan=2>Method setShadowFarClipDistance(farClip:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Set the far clip plane distance to be used by the shadow camera, if this light casts texture shadows.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This is different from the 'shadow far distance', which is always measured from the main camera. This distance is the
far clip plane of the light camera.
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" boder="0">
<tr>
<td><i>farClip</i></td>
<td>The distance, or -1 to use the main camera setting</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setShadowFarDistance>
<tr><td class=doctop colspan=2>Method setShadowFarDistance(distance:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the maximum distance away from the camera that shadows by this light will be visible.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>Shadow techniques can be expensive, therefore it is a good idea to limit them to being rendered close to the camera
if possible, and to skip the expense of rendering shadows for distance objects. This method allows you to set the distance
at which shadows will no longer be rendered.</p>
<p><b>Note:</b> Each shadow technique can interpret this subtely differently. For example, one technique may use this to
eliminate casters, another might use it to attenuate the shadows themselves. You should tweak this value to suit your chosen
shadow technique and scene setup.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setShadowNearClipDistance>
<tr><td class=doctop colspan=2>Method setShadowNearClipDistance(nearClip:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Set the near clip plane distance to be used by the shadow camera, if this light casts texture shadows.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" boder="0">
<tr>
<td><i>nearClip</i></td>
<td>The distance, or -1 to use the main camera setting </td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setSpecularColour>
<tr><td class=doctop colspan=2>Method setSpecularColour(r:Float, g:Float, b:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the colour of the specular light given off by this source.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>Material  objects have ambient, diffuse and specular values which indicate how
much of each type of light an object reflects. This value denotes the amount and colour of
this type of light the light exudes into the scene. The actual appearance of objects is a
combination of the two.</p>
<p>Specular light affects the appearance of shiny highlights on objects, and is also
dependent on the 'shininess' Material value.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setSpotlightFalloff>
<tr><td class=doctop colspan=2>Method setSpotlightFalloff(falloff:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the angle covered by the spotlights outer cone.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setSpotlightInnerAngle>
<tr><td class=doctop colspan=2>Method setSpotlightInnerAngle(angle:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the angle covered by the spotlights inner cone.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setSpotlightOuterAngle>
<tr><td class=doctop colspan=2>Method setSpotlightOuterAngle(angle:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the angle covered by the spotlights outer cone.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setSpotlightRange>
<tr><td class=doctop colspan=2>Method setSpotlightRange(innerAngle:Float, outerAngle:Float, falloff:Float = 1.0)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the range of a spotlight, i.e. the angle of the inner and outer cones and the rate of falloff between them.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td>
<i>innerAngle</i>
</td>
<td>
Angle covered by the bright inner cone The inner cone applicable only to Direct3D, it'll always treat as zero in OpenGL.
</td>
</tr>
<tr>
<td>
<i>outerAngle</i>
</td>
<td>
Angle covered by the outer cone
</td>
</tr>
<tr>
<td>
<i>falloff</i>
</td>
<td>
The rate of falloff between the inner and outer cones. 1.0 means a linear falloff, less means slower falloff, higher means faster falloff.
</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setType>
<tr><td class=doctop colspan=2>Method setType(lightType:Int = LT_POINT)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the type of light - see LightTypes for more info.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setVisible>
<tr><td class=doctop colspan=2>Method setVisible(visible:Byte)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Although lights themselves are not 'visible', setting a light to invisible means it no longer affects the scene.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=Material>
<tr><td class=doctop colspan=2>Type Material Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=Material_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#clone>clone</a></td><td class=docright>
Creates a new copy of this material with the same settings but a new name.
</td></tr>
<tr><td class=docleft width=1%><a href=#Compile>Compile</a></td><td class=docright>
'Compiles' this Material.
</td></tr>
<tr><td class=docleft width=1%><a href=#createTechnique>createTechnique</a></td><td class=docright>
Creates a new Technique for this Material.
</td></tr>
<tr><td class=docleft width=1%><a href=#getBestTechnique>getBestTechnique</a></td><td class=docright>
Gets the best supported technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#getName>getName</a></td><td class=docright>
Returns the name of this object.
</td></tr>
<tr><td class=docleft width=1%><a href=#getNumLodLevels>getNumLodLevels</a></td><td class=docright>
Gets the number of levels-of-detail this material has in the given scheme, based on Technique::setLodIndex.
</td></tr>
<tr><td class=docleft width=1%><a href=#getNumSupportedTechniques>getNumSupportedTechniques</a></td><td class=docright>
Retrieves the number of supported techniques.
</td></tr>
<tr><td class=docleft width=1%><a href=#getNumTechniques>getNumTechniques</a></td><td class=docright>
Retrieves the number of techniques.
</td></tr>
<tr><td class=docleft width=1%><a href=#getReceiveShadows>getReceiveShadows</a></td><td class=docright>
Returns whether or not objects using this material will receive shadows.
</td></tr>
<tr><td class=docleft width=1%><a href=#getSupportedTechnique>getSupportedTechnique</a></td><td class=docright>
Gets the indexed supported technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#getTechnique>getTechnique</a></td><td class=docright>
Gets the indexed technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#getTechniqueByName>getTechniqueByName</a></td><td class=docright>
searches for the named technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#getTransparencyCastsShadows>getTransparencyCastsShadows</a></td><td class=docright>
Returns whether or not objects using this material be classified as opaque to the shadow caster system.
</td></tr>
<tr><td class=docleft width=1%><a href=#getUnsupportedTechniquesExplanation>getUnsupportedTechniquesExplanation</a></td><td class=docright>
Gets a string explaining why any techniques are not supported.
</td></tr>
<tr><td class=docleft width=1%><a href=#isTransparent>isTransparent</a></td><td class=docright>
Determines if the material has any transparency with the rest of the scene (derived from whether any.
</td></tr>
<tr><td class=docleft width=1%><a href=#removeAllTechniques>removeAllTechniques</a></td><td class=docright>
Removes all the techniques in this Material.
</td></tr>
<tr><td class=docleft width=1%><a href=#removeTechnique>removeTechnique</a></td><td class=docright>
Removes the technique at the given index.
</td></tr>
<tr><td class=docleft width=1%><a href=#setAmbient>setAmbient</a></td><td class=docright>
Sets the ambient colour reflectance properties for every Pass in every Technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#setColourWriteEnabled>setColourWriteEnabled</a></td><td class=docright>
&nbsp;
</td></tr>
<tr><td class=docleft width=1%><a href=#setCullingMode>setCullingMode</a></td><td class=docright>
Sets the culling mode for each pass based on the 'vertex winding'.
</td></tr>
<tr><td class=docleft width=1%><a href=#setDepthBias>setDepthBias</a></td><td class=docright>
Sets the depth bias to be used for each Pass.
</td></tr>
<tr><td class=docleft width=1%><a href=#setDepthCheckEnabled>setDepthCheckEnabled</a></td><td class=docright>
Sets whether or not each Pass renders with depth-buffer checking on or not.
</td></tr>
<tr><td class=docleft width=1%><a href=#setDepthWriteEnabled>setDepthWriteEnabled</a></td><td class=docright>
Sets whether or not each Pass renders with depth-buffer writing on or not.
</td></tr>
<tr><td class=docleft width=1%><a href=#setDiffuse>setDiffuse</a></td><td class=docright>
Sets the diffuse colour reflectance properties of every Pass in every Technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#setFog>setFog</a></td><td class=docright>
Sets the fogging mode applied to each pass.
</td></tr>
<tr><td class=docleft width=1%><a href=#setLightingEnabled>setLightingEnabled</a></td><td class=docright>
Sets whether or not dynamic lighting is enabled for every Pass.
</td></tr>
<tr><td class=docleft width=1%><a href=#setManualCullingMode>setManualCullingMode</a></td><td class=docright>
Sets the manual culling mode, performed by CPU rather than hardware.
</td></tr>
<tr><td class=docleft width=1%><a href=#setPointSize>setPointSize</a></td><td class=docright>
Sets the point size properties for every Pass in every Technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#setReceiveShadows>setReceiveShadows</a></td><td class=docright>
Sets whether objects using this material will receive shadows.
</td></tr>
<tr><td class=docleft width=1%><a href=#setSceneBlending>setSceneBlending</a></td><td class=docright>
Sets the kind of blending every pass has with the existing contents of the scene.
</td></tr>
<tr><td class=docleft width=1%><a href=#setSelfIllumination>setSelfIllumination</a></td><td class=docright>
Sets the amount of self-illumination of every Pass in every Technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#setShadingMode>setShadingMode</a></td><td class=docright>
Sets the type of light shading required.
</td></tr>
<tr><td class=docleft width=1%><a href=#setShininess>setShininess</a></td><td class=docright>
Sets the shininess properties of every Pass in every Technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#setSpecular>setSpecular</a></td><td class=docright>
Sets the specular colour reflectance properties of every Pass in every Technique.
</td></tr>
<tr><td class=docleft width=1%><a href=#setTextureAnisotropy>setTextureAnisotropy</a></td><td class=docright>
Sets the anisotropy level to be used for all textures.
</td></tr>
<tr><td class=docleft width=1%><a href=#setTransparencyCastsShadows>setTransparencyCastsShadows</a></td><td class=docright>
Sets whether objects using this material be classified as opaque to the shadow caster system.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=clone>
<tr><td class=doctop colspan=2>Method clone:Material(newName:String, changeGroup:Byte = False, newGroup:String = "")</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Creates a new copy of this material with the same settings but a new name.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr><td><i>newName</i></td><td>The name for the cloned material</td></tr>
<tr><td><i>changeGroup</i></td><td>If true, the resource group of the clone is changed</td></tr>
<tr><td><i>newGroup</i></td><td>Only required if changeGroup is true; the new group to assign</td></tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Compile>
<tr><td class=doctop colspan=2>Method Compile(autoManageTextureUnits:Byte = True)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>'Compiles' this Material.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>Compiling a material involves determining which Techniques are supported on the card on which OGRE
is currently running, and for fixed-function Passes within those Techniques, splitting the passes down where
they contain more TextureUnitState instances than the current card has texture units.</p>
<p>This process is automatically done when the Material is loaded, but may be repeated if you make some
procedural changes.</p>
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td><i>autoManageTextureUnits</i></td>
<td>
If true, when a fixed function pass has too many TextureUnitState entries than the card has texture
units, the Pass in question will be split into more than one Pass in order to emulate the Pass. If
you set this to false and this situation arises, an Exception will be thrown.
</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=createTechnique>
<tr><td class=doctop colspan=2>Method createTechnique:Technique()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Creates a new Technique for this Material.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>A Technique is a single way of rendering geometry in order to achieve the effect you are intending in
a material. There are many reason why you would want more than one - the main one being to handle variable
graphics card abilities; you might have one technique which is impressive but only runs on 4th-generation graphics
cards, for example. In this case you will want to create at least one fallback Technique. OGRE will work out which
Techniques a card can support and pick the best one.</p>
<p>If multiple Techniques are available, the order in which they are created is important - the engine will consider
lower-indexed Techniques to be preferable to higher-indexed Techniques, ie when asked for the 'best' technique it
will return the first one in the technique list which is supported by the hardware.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getBestTechnique>
<tr><td class=doctop colspan=2>Method getBestTechnique:Technique(lodIndex:Int = 0, rend:BaseObject = Null)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the best supported technique.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This method returns the lowest-index supported Technique in this material (since lower-indexed Techniques
are considered to be better than higher-indexed ones).</p>
<p>The best supported technique is only available after this material has been compiled, which typically happens on
loading the material. Therefore, if this method returns NULL, try calling Material::load.</p>
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr><td><i>lodIndex</i></td><td>The material lod index to use</td></tr>
<tr><td><i>rend</i></td><td>
Optional parameter specifying the Renderable that is requesting this technique. Only used if no valid technique for
the active material scheme is found, at which point it is passed to MaterialManager::Listener::handleSchemeNotFound
as information.</td></tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getName>
<tr><td class=doctop colspan=2>Method getName:String()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns the name of this object.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getNumLodLevels>
<tr><td class=doctop colspan=2>Method getNumLodLevels:Int(schemeIndex:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the number of levels-of-detail this material has in the given scheme, based on Technique::setLodIndex.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><b>Note:</b> Note that this will not be up to date until the material has been compiled.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getNumSupportedTechniques>
<tr><td class=doctop colspan=2>Method getNumSupportedTechniques:Int()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Retrieves the number of supported techniques.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getNumTechniques>
<tr><td class=doctop colspan=2>Method getNumTechniques:Int()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Retrieves the number of techniques.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getReceiveShadows>
<tr><td class=doctop colspan=2>Method getReceiveShadows:Byte()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns whether or not objects using this material will receive shadows.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getSupportedTechnique>
<tr><td class=doctop colspan=2>Method getSupportedTechnique:Technique(index:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the indexed supported technique.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getTechnique>
<tr><td class=doctop colspan=2>Method getTechnique:Technique(index:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the indexed technique.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getTechniqueByName>
<tr><td class=doctop colspan=2>Method getTechniqueByName:Technique(techName:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>searches for the named technique.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Return 0 if technique with name is not found.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getTransparencyCastsShadows>
<tr><td class=doctop colspan=2>Method getTransparencyCastsShadows:Byte()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Returns whether or not objects using this material be classified as opaque to the shadow caster system.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getUnsupportedTechniquesExplanation>
<tr><td class=doctop colspan=2>Method getUnsupportedTechniquesExplanation:String()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets a string explaining why any techniques are not supported.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=isTransparent>
<tr><td class=doctop colspan=2>Method isTransparent:Byte()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Determines if the material has any transparency with the rest of the scene (derived from whether any.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=removeAllTechniques>
<tr><td class=doctop colspan=2>Method removeAllTechniques()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Removes all the techniques in this Material.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=removeTechnique>
<tr><td class=doctop colspan=2>Method removeTechnique(index:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Removes the technique at the given index.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setAmbient>
<tr><td class=doctop colspan=2>Method setAmbient(r:Float, g:Float, b:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the ambient colour reflectance properties for every Pass in every Technique.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For simplicity,
this method allows you to set these properties for every current Technique, and for every current Pass within
those Techniques. If you need more precision, retrieve the Technique and Pass instances and set the property
there.</p>
<p><b>See also:</b> Pass::setAmbient</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setColourWriteEnabled>
<tr><td class=doctop colspan=2>Method setColourWriteEnabled(enabled:Byte)</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See also:</b> Pass::setColourWriteEnabled</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setCullingMode>
<tr><td class=doctop colspan=2>Method setCullingMode(mode:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the culling mode for each pass based on the 'vertex winding'.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See Also:</b> Pass::setCullingMode</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setDepthBias>
<tr><td class=doctop colspan=2>Method setDepthBias(constantBias:Float, slopeScaleBias:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the depth bias to be used for each Pass.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See Also:</b> Pass::setDepthBias</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setDepthCheckEnabled>
<tr><td class=doctop colspan=2>Method setDepthCheckEnabled(enabled:Byte)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets whether or not each Pass renders with depth-buffer checking on or not.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See also:</b> Pass::setDepthCheckEnabled</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setDepthWriteEnabled>
<tr><td class=doctop colspan=2>Method setDepthWriteEnabled(enabled:Byte)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets whether or not each Pass renders with depth-buffer writing on or not.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See also:</b> Pass::setDepthWriteEnabled</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setDiffuse>
<tr><td class=doctop colspan=2>Method setDiffuse(r:Float, g:Float, b:Float, a:Float = 1.0)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the diffuse colour reflectance properties of every Pass in every Technique.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique.
For simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.<p>
<p><b>See also:</b> Pass::setDiffuse</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setFog>
<tr><td class=doctop colspan=2>Method setFog(overrideScene:Byte, mode:Int = FOG_NONE, colour:ColourValue = Null, expDensity:Float = 0.001, linearStart:Float = 0.0, linearEnd:Float = 1.0)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the fogging mode applied to each pass.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See Also:</b> Pass::setFog</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setLightingEnabled>
<tr><td class=doctop colspan=2>Method setLightingEnabled(enabled:Byte)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets whether or not dynamic lighting is enabled for every Pass.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See Also:</b> Pass::setLightingEnabled</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setManualCullingMode>
<tr><td class=doctop colspan=2>Method setManualCullingMode(mode:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the manual culling mode, performed by CPU rather than hardware.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See Also:</b> Pass::setManualCullingMode</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setPointSize>
<tr><td class=doctop colspan=2>Method setPointSize(ps:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the point size properties for every Pass in every Technique.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For simplicity,
this method allows you to set these properties for every current Technique, and for every current Pass within
those Techniques. If you need more precision, retrieve the Technique and Pass instances and set the property
there.</p>
<p><b>See also:</b> Pass::setPointSize</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setReceiveShadows>
<tr><td class=doctop colspan=2>Method setReceiveShadows(enabled:Byte)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets whether objects using this material will receive shadows.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This method allows a material to opt out of receiving shadows, if it would otherwise do so. Shadows
will not be cast on any objects unless the scene is set up to support shadows (See also: SceneManager::setShadowTechnique),
and not all techniques cast shadows on all objects. In any case, if you have a need to prevent shadows being
received by material, this is the method you call to do it.</p>
<p><b>Note: Transparent materials never receive shadows despite this setting. The default is to receive shadows.</b></p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setSceneBlending>
<tr><td class=doctop colspan=2>Method setSceneBlending(sbt:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the kind of blending every pass has with the existing contents of the scene.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See Also:</b> Pass::setSceneBlending</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setSelfIllumination>
<tr><td class=doctop colspan=2>Method setSelfIllumination(r:Float, g:Float, b:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the amount of self-illumination of every Pass in every Technique.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For simplicity,
this method allows you to set these properties for every current Technique, and for every current Pass within
those Techniques. If you need more precision, retrieve the Technique and Pass instances and set the property
there.</p>
<p><b>See also:</b> Pass::setSelfIllumination</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setShadingMode>
<tr><td class=doctop colspan=2>Method setShadingMode(mode:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the type of light shading required.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See Also:</b> Pass::setShadingMode</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setShininess>
<tr><td class=doctop colspan=2>Method setShininess(shininess:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the shininess properties of every Pass in every Technique.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This property has been moved to the Pass class, which is accessible via the Technique. For simplicity,
this method allows you to set these properties for every current Technique, and for every current Pass within
those Techniques. If you need more precision, retrieve the Technique and Pass instances and set the property
there.
<p><b>See also:</b> Pass::setShininess</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setSpecular>
<tr><td class=doctop colspan=2>Method setSpecular(r:Float, g:Float, b:Float, a:Float = 1.0)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the specular colour reflectance properties of every Pass in every Technique.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For simplicity,
this method allows you to set these properties for every current Technique, and for every current Pass within
those Techniques. If you need more precision, retrieve the Technique and Pass instances and set the property
there.</p>
<p><b>See also:</b> Pass::setSpecular</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setTextureAnisotropy>
<tr><td class=doctop colspan=2>Method setTextureAnisotropy(maxAniso:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the anisotropy level to be used for all textures.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This property has been moved to the Pass class, which is accessible via the Technique. For
simplicity, this method allows you to set these properties for every current Technique, and for every
current Pass within those Techniques. If you need more precision, retrieve the Technique and Pass instances
and set the property there.</p>
<p><b>See Also:</b> Pass::setTextureAnisotropy</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setTransparencyCastsShadows>
<tr><td class=doctop colspan=2>Method setTransparencyCastsShadows(enabled:Byte)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets whether objects using this material be classified as opaque to the shadow caster system.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This method allows a material to cast a shadow, even if it is transparent. By default, transparent
materials neither cast nor receive shadows. Shadows will not be cast on any objects unless the scene is set
up to support shadows (<b>See also:</b> SceneManager::setShadowTechnique), and not all techniques cast
shadows on all objects.</p></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=Pass>
<tr><td class=doctop colspan=2>Type Pass Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=Pass_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#getFragmentProgramParameters>getFragmentProgramParameters</a></td><td class=docright>
Sets the fragment program parameters.
</td></tr>
<tr><td class=docleft width=1%><a href=#processPendingPassUpdates>processPendingPassUpdates</a></td><td class=docright>
Process all dirty and pending deletion passes.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getFragmentProgramParameters>
<tr><td class=doctop colspan=2>Method getFragmentProgramParameters:GpuProgramParameters()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the fragment program parameters.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Only applicable to programmable passes.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=processPendingPassUpdates>
<tr><td class=doctop colspan=2>Method processPendingPassUpdates()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Process all dirty and pending deletion passes.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=RenderSystem>
<tr><td class=doctop colspan=2>Type RenderSystem Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=RenderSystem_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#setConfigOption>setConfigOption</a></td><td class=docright>
Sets an option for this API.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setConfigOption>
<tr><td class=doctop colspan=2>Method setConfigOption(option_name:String, option_value:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets an option for this API.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Used to confirm the settings (normally chosen by the user) in order to make the renderer able to initialise with
the settings as required. This may be video mode, D3D driver, full screen / windowed etc. Called automatically by the
default configuration dialog, and by the restoration of saved settings. These settings are stored and only activated when
RenderSystem::initialise or RenderSystem::reinitialise  are called.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=RenderWindow>
<tr><td class=doctop colspan=2>Type RenderWindow Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=RenderWindow_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#addViewPort>addViewPort</a></td><td class=docright>
Adds a viewport to the rendering target.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=addViewPort>
<tr><td class=doctop colspan=2>Method addViewPort:Viewport(cam:Camera, zOrder:Int = 0, x:Float = 0.0, y:Float = 0.0, width:Float = 1.0, Height:Float = 1.0)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Adds a viewport to the rendering target.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>A viewport is the rectangle into which rendering output is sent. This method adds a viewport
to the render target, rendering from the supplied camera. The rest of the parameters are only required
if you wish to add more than one viewport to a single rendering target. Note that size information
passed to this method is passed as a parametric, i.e. it is relative rather than absolute. This is to
allow viewports to automatically resize along with the target.
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr><td><i>cam</i></td><td>The camera from which the viewport contents will be rendered (mandatory)</td></tr>
<tr><td><i>ZOrder</i></td><td>The relative order of the viewport with others on the target (allows overlapping viewports i.e. picture-in-picture). Higher ZOrders are on top of lower ones. The actual number is irrelevant, only the relative ZOrder matters (you can leave gaps in the numbering)</td></tr>
<tr><td><i>left</i></td><td>The relative position of the left of the viewport on the target, as a value between 0 and 1.</td></tr>
<tr><td><i>top</i></td><td>The relative position of the top of the viewport on the target, as a value between 0 and 1.</td></tr>
<tr><td><i>width</i></td><td>The relative width of the viewport on the target, as a value between 0 and 1.</td></tr>
<tr><td><i>height</i></td><td>The relative height of the viewport on the target, as a value between 0 and 1.</td></tr>
<p>
</table></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=ResourceGroupManager>
<tr><td class=doctop colspan=2>Type ResourceGroupManager</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=ResourceGroupManager_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#addResourceLocation>addResourceLocation</a></td><td class=docright>
Method to add a resource location to for a given resource group.
</td></tr>
<tr><td class=docleft width=1%><a href=#createResourceGroup>createResourceGroup</a></td><td class=docright>
Create a resource group.
</td></tr>
<tr><td class=docleft width=1%><a href=#initialiseResourceGroup>initialiseResourceGroup</a></td><td class=docright>
&nbsp;
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=addResourceLocation>
<tr><td class=doctop colspan=2>Method addResourceLocation(name:String, locType:String = "FileSystem", resGroup:String = DEFAULT_RESOURCE_GROUP_NAME, recursive:Byte = False)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Method to add a resource location to for a given resource group.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Resource  locations are places which are searched to load resource files. When you choose to load a file, or to search for valid files to load, the resource locations are used.
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td><i>name</i></td><td>The name of the resource location; probably a directory, zip file, URL etc.</td>
</tr>
<tr>
<td><i>locType</i></td>
<td>
The codename for the resource type, which must correspond to the Archive factory which is providing the implementation.
</td>
</tr>
<tr>
<td><i>resGroup</i></td>
<td>
The name of the resource group for which this location is to apply. ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME
is the default group which always exists, and can be used for resources which are unlikely to be unloaded until application
shutdown. Otherwise it must be the name of a group; if it has not already been created with createResourceGroup then it
is created automatically.
</td>
</tr>
<tr>
<td><i>recursive</i></td>
<td>
Whether subdirectories will be searched for files when using a pattern match (such as *.material), and whether
subdirectories will be indexed. This can slow down initial loading of the archive and searches. When opening a
resource you still need to use the fully qualified name, this allows duplicate names in alternate paths.
</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=createResourceGroup>
<tr><td class=doctop colspan=2>Method createResourceGroup(name:String, inGlobalPool:Byte = True)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Create a resource group.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>A resource group allows you to define a set of resources that can be loaded / unloaded as a unit. For example,
it might be all the resources used for the level of a game. There is always one predefined resource group called
ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, which is typically used to hold all resources which do not need to be
unloaded until shutdown. There is another predefined resource group called ResourceGroupManager::INTERNAL_RESOURCE_GROUP_NAME
too, which should be used by OGRE internal only, the resources created in this group aren't supposed to modify, unload or
remove by user. You can create additional ones so that you can control the life of your resources in whichever way you wish.
There is one other predefined value, ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME; using this causes the group name
to be derived at load time by searching for the resource in the resource locations of each group in turn.</p>
<p>
<p>Once you have defined a resource group, resources which will be loaded as part of it are defined in one of 3 ways:
<ol>
<li> Manually through declareResource(); this is useful for scripted declarations since it is entirely generalised,
and does not create Resource instances right away</li>
<li> Through the use of scripts; some ResourceManager subtypes have script formats (e.g. .material, .overlay) which
can be used to declare resources</li>
<li> By calling ResourceManager::create to create a resource manually. This resource will go on the list for it's
group and will be loaded and unloaded with that group</li>
</ol>
You must remember to call initialiseResourceGroup if you intend to use the first 2 types. </p>
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td><i>name</i></td><td>The name to give the resource group.</td>
</tr>
<tr>
<td><i>inGlobalPool</i></td>
<td>if true the resource will be loaded even a different group was requested in the load method as a parameter.</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=initialiseResourceGroup>
<tr><td class=doctop colspan=2>Method initialiseResourceGroup(resourceGroup:String = DEFAULT_RESOURCE_GROUP_NAME)</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>After creating a resource group, adding some resource locations, and perhaps pre-declaring some resources using
declareResource(), but before you need to use the resources in the group, you should call this method to initialise the
group. By calling this, you are triggering the following processes:
<ol>
<li>Scripts for all resource types which support scripting are parsed from the resource locations, and resources within
them are created (but not loaded yet).</li>
<li>Creates all the resources which have just pre-declared using declareResource (again, these are not loaded yet)</li>
</ol>
<p>So what this essentially does is create a bunch of unloaded Resource entries in the respective ResourceManagers based
on scripts, and resources you've pre-declared. That means that code looking for these resources will find them, but they
won't be taking up much memory yet, until they are either used, or they are loaded in bulk using loadResourceGroup. Loading
the resource group in bulk is entirely optional, but has the advantage of coming with progress reporting as resources are loaded.</p>
<p>Failure to call this method means that loadResourceGroup will do nothing, and any resources you define in scripts will
not be found. Similarly, once you have called this method you won't be able to pick up any new scripts or pre-declared resources,
unless you call clearResourceGroup, set up declared resources, and call this method again.</p>
<p><b>Note:</b> When you call Root::initialise, all resource groups that have already been created are automatically
initialised too. Therefore you do not need to call this method for groups you define and set up before you call Root::initialise.
However, since one of the most useful features of resource groups is to set them up after the main system initialisation
has occurred (e.g. a group per game level), you must remember to call this method for the groups you create after this.</p>
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td><i>name</i></td><td>The name of the resource group to initialise</td>
</tr>
</table></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=Root>
<tr><td class=doctop colspan=2>Type Root Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=Root_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#createRenderWindow>createRenderWindow</a></td><td class=docright>
Creates a new rendering window.
</td></tr>
<tr><td class=docleft width=1%><a href=#createSceneManager>createSceneManager</a></td><td class=docright>
Create a SceneManager  instance based on scene type support.
</td></tr>
<tr><td class=docleft width=1%><a href=#getRenderSystem>getRenderSystem</a></td><td class=docright>
Retrieve a pointer to the currently selected render system.
</td></tr>
<tr><td class=docleft width=1%><a href=#getRenderSystemByName>getRenderSystemByName</a></td><td class=docright>
Retrieve a pointer to the render system by the given name.
</td></tr>
<tr><td class=docleft width=1%><a href=#initialise>initialise</a></td><td class=docright>
Initialises the renderer.
</td></tr>
<tr><td class=docleft width=1%><a href=#loadPlugin>loadPlugin</a></td><td class=docright>
Manually load a Plugin contained in a DLL / DSO.
</td></tr>
<tr><td class=docleft width=1%><a href=#renderOneFrame>renderOneFrame</a></td><td class=docright>
Render one frame, with custom frame time information.
</td></tr>
<tr><td class=docleft width=1%><a href=#restoreConfig>restoreConfig</a></td><td class=docright>
Checks for saved video/sound/etc settings.
</td></tr>
<tr><td class=docleft width=1%><a href=#saveConfig>saveConfig</a></td><td class=docright>
Saves the details of the current configuration.
</td></tr>
<tr><td class=docleft width=1%><a href=#setRenderSystem>setRenderSystem</a></td><td class=docright>
Sets the rendering subsystem to be used.
</td></tr>
<tr><td class=docleft width=1%><a href=#showConfigDialog>showConfigDialog</a></td><td class=docright>
Displays a dialog asking the user to choose system settings.
</td></tr>
<tr><td class=docleft width=1%><a href=#Shutdown>Shutdown</a></td><td class=docright>
Shuts down the system manually.
</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=Root_functions></a>Functions Summary</th></tr>
<tr><td class=docleft width=1%><a href=#Create>Create</a></td><td class=docright>
Constructor.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=createRenderWindow>
<tr><td class=doctop colspan=2>Method createRenderWindow:RenderWindow(name:String, width:Int, Height:Int, fullscreen:Byte = False, misc:String = "")</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Creates a new rendering window.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This method creates a new rendering window as specified by the paramteters. The rendering system could be responible
for only a single window (e.g. in the case of a game), or could be in charge of multiple ones (in the case of a level editor).
The option to create the window as a child of another is therefore given. This method will create an appropriate subclass of
RenderWindow depending on the API and platform implementation.
<p>After creation, this window can be retrieved using getRenderTarget().</p>
<table cellpadding="4" cellspacing="4" border="0">
<tr class="tablehead">
<td>
name
</td>
<td>
The name of the window. Used in other methods later like setRenderTarget and getRenderTarget.
</td>
</tr>
<tr>
<td>
width
</td>
<td>
The width of the new window.
</td>
</tr>
<tr>
<td>
height
</td>
<td>
The height of the new window.
</td>
</tr>
<tr>
<td>
fullScreen
</td>
<td>
Specify true to make the window full screen without borders, title bar or menu bar.
</td>
</tr>
<tr>
<td>
misc
</td>
<td>
String describing the other parameters for the new rendering window. Options are case sensitive. Unrecognised parameters
will be ignored silently. These values might be platform dependent, but these are present for all platforms unless indicated
otherwise:
</td>
</tr>
</table>
<p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td><b>Key</b></td>
<td><b>Type/Values</b></td>
<td><b>Default</b></td>
<td><b>Description</b></td>
<td><b>Notes</b></td>
</tr>
<tr>
<td>title</td>
<td>Any string</td>
<td>RenderTarget name</td>
<td>The title of the window that will appear in the title bar </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>colourDepth </td>
<td>16, 32 </td>
<td>Desktop depth </td>
<td>Colour depth of the resulting rendering window; only applies if fullScreen </td>
<td>Win32 Specific  </td>
</tr>
<tr>
<td>left </td>
<td>Positive integers </td>
<td>Centred </td>
<td>Screen x coordinate from left </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>top </td>
<td>Positive integers </td>
<td>Centred </td>
<td>Screen y coordinate from left </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>depthBuffer </td>
<td>true, false </td>
<td>true </td>
<td>Use depth buffer </td>
<td>DirectX9 specific  </td>
</tr>
<tr>
<td>externalWindowHandle </td>
<td>
Win32: HWND as integer<br>
GLX: poslong:posint:poslong (display*:screen:windowHandle) or poslong:posint:poslong:poslong (display*:screen:windowHandle:XVisualInfo*)
</td>
<td>0 (none) </td>
<td>External window handle, for embedding the OGRE render in an existing window </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>externalGLControl </td>
<td>true, false </td>
<td>false </td>
<td>
Let the external window control OpenGL i.e. don't select a pixel format for the window, do not change v-sync and do not swap buffer.
When set to true, the calling application is responsible of OpenGL initialization and buffer swapping. It should also create an OpenGL
context for its own rendering, <a class="el" href="namespaceOgre.html">Ogre</a> will create one for its use. Then the calling application
must also enable Ogre OpenGL context before calling any Ogre function and restore its OpenGL context after these calls.
</td>
<td>OpenGL specific  </td>
</tr>
<tr>
<td>externalGLContext </td>
<td>Context as Unsigned Long </td>
<td>0 (create own context) </td>
<td>Use an externally created GL context </td>
<td>OpenGL Specific  </td>
</tr>
<tr>
<td>parentWindowHandle </td>
<td>
Win32: HWND as integer<br>
GLX: poslong:posint:poslong (display*:screen:windowHandle) or poslong:posint:poslong:poslong (display*:screen:windowHandle:XVisualInfo*)
</td>
<td>0 (none) </td>
<td>Parent window handle, for embedding the OGRE in a child of an external window </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>macAPI </td>
<td>String: "cocoa" or "carbon" </td>
<td>"carbon" </td>
<td>Specifies the type of rendering window on the Mac Platform. </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>macAPICocoaUseNSView </td>
<td>bool "true" or "false" </td>
<td>"false" </td>
<td>
On the Mac platform the most diffused method to embed ogre in a custom application is to use the IntefaceBuilder and add to the
interface an instance of OgreView. The pointer to this instance is then used as "externalWindowHandle". However, there are cases
where you are NOT using the Interface Builder and you get the Cocoa NSView* of an existing interface. For example, this is happens
when you want to render into a Java/AWT interface. In short, by setting this flag to "true" the Ogre::Root::createRenderWindow
interprets the "externalWindowHandle" as a NSView* instead of an OgreView*. See OgreOSXCocoaView.h
</td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>FSAA </td>
<td>Positive integer (usually 0, 2, 4, 8, 16) </td>
<td>0 </td>
<td>Full screen antialiasing factor </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>FSAAHint </td>
<td>
Depends on RenderSystem and hardware. Currently supports:<br>
"Quality": on systems that have an option to prefer higher AA quality over speed, use it
</td>
<td>Blank </td>
<td>Full screen antialiasing hint </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>displayFrequency </td>
<td>Refresh rate in Hertz (e.g. 60, 75, 100) </td>
<td>Desktop vsync rate </td>
<td>Display frequency rate, for fullscreen mode </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>vsync </td>
<td>true, false </td>
<td>false </td>
<td>Synchronize buffer swaps to monitor vsync, eliminating tearing at the expense of a fixed frame rate </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>vsyncInterval </td>
<td>1, 2, 3, 4 </td>
<td>1 </td>
<td>
If vsync is enabled, the minimum number of vertical blanks that should occur between renders. For example
if vsync is enabled, the refresh rate is 60 and this is set to 2, then the frame rate will be locked at 30.
</td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>border </td>
<td>none, fixed, resize </td>
<td>resize </td>
<td>The type of window border (in windowed mode) </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>outerDimensions </td>
<td>true, false </td>
<td>false </td>
<td>Whether the width/height is expressed as the size of the outer window, rather than the content area </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>useNVPerfHUD </td>
<td>true, false </td>
<td>false </td>
<td>Enable the use of nVidia NVPerfHUD </td>
<td>&nbsp;  </td>
</tr>
<tr>
<td>gamma </td>
<td>true, false </td>
<td>false </td>
<td>Enable hardware conversion from linear colour space to gamma colour space on rendering to the window. </td>
<td>&nbsp;</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=createSceneManager>
<tr><td class=doctop colspan=2>Method createSceneManager:SceneManager(typeMask:Int = ST_GENERIC, instanceName:String = "")</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Create a SceneManager  instance based on scene type support.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Creates an instance of a SceneManager  which supports the scene types identified in the parameter.
If more than one type of SceneManager  has been registered as handling that combination of scene types, in
instance of the last one registered is returned.
<p><b>Note:</b> This method always succeeds, if a specific scene manager is not found, the default implementation is always returned.</p>
<p><b>Parameters:</b>
<table cellpadding="4" cellspacing="4" border="0">
<tr><td><i>typeMask</i></td><td>A mask containing one or more SceneType flags</td></tr>
<tr><td><i>instanceName</i></td><td>Optional name to given the new instance that is created. If you leave this blank, an auto name
will be assigned.</td></tr></table>
<p>
<b>SceneTypes:</b><br><i>
ST_GENERIC<br>
ST_EXTERIOR_CLOSE<br>
ST_EXTERIOR_FAR<br>
ST_EXTERIOR_REAL_FAR<br>
ST_INTERIOR
</i></p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getRenderSystem>
<tr><td class=doctop colspan=2>Method getRenderSystem:RenderSystem()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Retrieve a pointer to the currently selected render system.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getRenderSystemByName>
<tr><td class=doctop colspan=2>Method getRenderSystemByName:RenderSystem(rendersystem_name:String)</td></tr>
<tr><td class=docleft width=1%>Returns</td><td class=docright>A object from Type <i>RenderSystem</i>, NULL if no found.</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Retrieve a pointer to the render system by the given name.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Parameters: Name of the render system intend to retrieve.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=initialise>
<tr><td class=doctop colspan=2>Method initialise:RenderWindow(autoCreateWindow:Byte = True, windowTitle:String = "Ogre3D", customCapabilities:String = "")</td></tr>
<tr><td class=docleft width=1%>Returns</td><td class=docright>Type <i>RenderWindow</i>, if requested, otherwise NULL.</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Initialises the renderer.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This method can only be called after a renderer has been selected with Root::setRenderSystem, and it will initialise the
selected rendering system ready for use.
<p><i>autoCreateWindow</i>If true, a rendering window will automatically be created (saving a call to Root::createRenderWindow). The window will be created based on the options currently set on the render system. </p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=loadPlugin>
<tr><td class=doctop colspan=2>Method loadPlugin(plugin:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Manually load a Plugin contained in a DLL / DSO.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Plugins embedded in DLLs can be loaded at startup using the plugin configuration file specified when you
create Root (default: plugins.cfg). This method allows you to load plugin DLLs directly in code. The DLL in question
is expected to implement a dllStartPlugin method which instantiates a Plugin subclass and calls Root::installPlugin.
It should also implement dllStopPlugin (see Root::unloadPlugin)</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=renderOneFrame>
<tr><td class=doctop colspan=2>Method renderOneFrame:Byte(timeSinceLastFrame:Float = 0.0)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Render one frame, with custom frame time information.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Updates all the render targets automatically and then returns, raising frame events before and after -
all per-frame times are based on the time value you pass in.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=restoreConfig>
<tr><td class=doctop colspan=2>Method restoreConfig:Byte()</td></tr>
<tr><td class=docleft width=1%>Returns</td><td class=docright>If a valid configuration was found, true is returned. If there is no saved configuration, or if the system failed with the last config settings, false is returned.</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Checks for saved video/sound/etc settings.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This method checks to see if there is a valid saved configuration from a previous run. If there is, the state of the system
will be restored to that configuration.<br></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=saveConfig>
<tr><td class=doctop colspan=2>Method saveConfig()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Saves the details of the current configuration.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Stores details of the current configuration so it may be restored later on.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setRenderSystem>
<tr><td class=doctop colspan=2>Method setRenderSystem(rs:RenderSystem)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the rendering subsystem to be used.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This method indicates to OGRE which rendering system is to be used (e.g. Direct3D, OpenGL etc). This is called
automatically by the default config dialog, and when settings are restored from a previous configuraion. If used manually
it could be used to set the renderer from a custom settings dialog. Once this has been done, the renderer can be initialised
using Root::initialise.<p>This method is also called by render systems if they are initialised directly.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=showConfigDialog>
<tr><td class=doctop colspan=2>Method showConfigDialog:Byte()</td></tr>
<tr><td class=docleft width=1%>Returns</td><td class=docright>If the user clicked 'Ok', true is returned.<br>If they clicked 'Cancel' (in which case the app should strongly consider terminating), false is returned.</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Displays a dialog asking the user to choose system settings.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This method displays the default dialog allowing the user to choose the rendering system, video mode etc. If there is are any settings saved already, they will be restored automatically before displaying the dialogue. When the user accepts a group of settings, this will automatically call Root::setRenderSystem, RenderSystem::setConfigOption and Root::saveConfig  with the user's choices. This is the easiest way to get the system configured.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Shutdown>
<tr><td class=doctop colspan=2>Method Shutdown()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Shuts down the system manually.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=Create>
<tr><td class=doctop colspan=2>Function Create:Root(plugins:String = "plugins.cfg", config:String = "ogre.cfg", logfile:String = "ogre.log", manual:Byte = False)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Constructor.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><table cellpadding="4" cellspacing="4" border="0">
<tr>
<td>
<i>pluginFileName</i>
</td>
<td>
The file that contains plugins information. Defaults to "plugins.cfg", may be left blank to ignore.
</td>
</tr>
<tr>
<td>
<i>configFileName</i>
</td>
<td>
The file that contains the configuration to be loaded. Defaults to "ogre.cfg", may be left blank to load nothing.
</td>
</tr>
<tr>
<td>
<i>logFileName</i>
</td>
<td>
The logfile to create, defaults to Ogre.log, may be left blank if you've already set up LogManager and Log yourself
</td>
</tr>
</table></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=SceneManager>
<tr><td class=doctop colspan=2>Type SceneManager Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=SceneManager_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#createCamera>createCamera</a></td><td class=docright>
Creates a camera to be managed by this scene manager.
</td></tr>
<tr><td class=docleft width=1%><a href=#createEntity>createEntity</a></td><td class=docright>
Create an Entity (instance of a discrete mesh).
</td></tr>
<tr><td class=docleft width=1%><a href=#createLight>createLight</a></td><td class=docright>
Creates a light for use in the scene.
</td></tr>
<tr><td class=docleft width=1%><a href=#destroyAllCameras>destroyAllCameras</a></td><td class=docright>
Removes (and destroys) all cameras from the scene.
</td></tr>
<tr><td class=docleft width=1%><a href=#destroyAllEntities>destroyAllEntities</a></td><td class=docright>
Removes <pre></pre> destroys all Entities.
</td></tr>
<tr><td class=docleft width=1%><a href=#destroyAllLights>destroyAllLights</a></td><td class=docright>
Removes and destroys all lights in the scene.
</td></tr>
<tr><td class=docleft width=1%><a href=#destroyCamera>destroyCamera</a></td><td class=docright>
Removes a camera from the scene.
</td></tr>
<tr><td class=docleft width=1%><a href=#destroyEntity>destroyEntity</a></td><td class=docright>
Removes <pre></pre> destroys an Entity from the SceneManager.
</td></tr>
<tr><td class=docleft width=1%><a href=#destroyLight>destroyLight</a></td><td class=docright>
Removes the light from the scene and destroys it based on a pointer.
</td></tr>
<tr><td class=docleft width=1%><a href=#destroySceneNode>destroySceneNode</a></td><td class=docright>
Destroys a SceneNode.
</td></tr>
<tr><td class=docleft width=1%><a href=#getRootSceneNode>getRootSceneNode</a></td><td class=docright>
Gets the SceneNode at the root of the scene hierarchy.
</td></tr>
<tr><td class=docleft width=1%><a href=#setAmbientLight>setAmbientLight</a></td><td class=docright>
Sets the ambient light level to be used for the scene.
</td></tr>
<tr><td class=docleft width=1%><a href=#setShadowFarDistance>setShadowFarDistance</a></td><td class=docright>
Sets the default maximum distance away from the camera that shadows will be visible.
</td></tr>
<tr><td class=docleft width=1%><a href=#setShadowTechnique>setShadowTechnique</a></td><td class=docright>
Sets the general shadow technique to be used in this scene.
</td></tr>
<tr><td class=docleft width=1%><a href=#setShadowTextureSize>setShadowTextureSize</a></td><td class=docright>
Set the size of the texture used for all texture-based shadows.
</td></tr>
<tr><td class=docleft width=1%><a href=#setShadowUseLightClipPlanes>setShadowUseLightClipPlanes</a></td><td class=docright>
Sets whether when using a built-in additive shadow mode, user clip planes should be used to restrict light rendering.
</td></tr>
<tr><td class=docleft width=1%><a href=#setSkyBox>setSkyBox</a></td><td class=docright>
Enables / disables a 'sky box' i.e. a 6-sided box at constant distance from the camera representing the sky.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=createCamera>
<tr><td class=doctop colspan=2>Method createCamera:Camera(name:String = "")</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Creates a camera to be managed by this scene manager.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This camera must be added to the scene at a later time using the attachObject method of the SceneNode class.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=createEntity>
<tr><td class=doctop colspan=2>Method createEntity:Entity(entityName:String, meshName:String, groupName:String = AUTODETECT_RESOURCE_GROUP_NAME)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Create an Entity (instance of a discrete mesh).</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><b>Parameters:</b>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td><i>entityName</i></td><td>The name to be given to the entity (must be unique).</td>
</tr>
<tr>
<td><i>meshName</i></td><td>The name of the Mesh it is to be based on (e.g. 'knot.oof'). The mesh will be loaded if it is not already.</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=createLight>
<tr><td class=doctop colspan=2>Method createLight:Light()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Creates a light for use in the scene.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Lights can either be in a fixed position and independent of the scene graph, or they can be attached to
SceneNodes so they derive their position from the parent node. Either way, they are created using this method so
that the SceneManager  manages their existence.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=destroyAllCameras>
<tr><td class=doctop colspan=2>Method destroyAllCameras()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Removes (and destroys) all cameras from the scene.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Some cameras are internal created to dealing with texture shadow, their aren't supposed to destroy outside.
So, while you are using texture shadow, don't call this method, or you can set the shadow technique other than
texture-based, which will destroy all internal created shadow cameras and textures.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=destroyAllEntities>
<tr><td class=doctop colspan=2>Method destroyAllEntities()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Removes <pre></pre> destroys all Entities.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><b>Warning:</b> Again, use caution since no Entity must be referred to elsewhere e.g. attached to a SceneNode
otherwise a crash is likely. Use clearScene if you are unsure (it clears SceneNode entries too.)</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=destroyAllLights>
<tr><td class=doctop colspan=2>Method destroyAllLights()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Removes and destroys all lights in the scene.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=destroyCamera>
<tr><td class=doctop colspan=2>Method destroyCamera(cam:Camera)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Removes a camera from the scene.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This method removes a previously added camera from the scene. The camera is deleted so the caller must ensure no
references to it's previous instance (e.g. in a SceneNode) are used.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=destroyEntity>
<tr><td class=doctop colspan=2>Method destroyEntity(ent:Entity)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Removes <pre></pre> destroys an Entity from the SceneManager.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><b>Warning:</b> Must only be done if the Entity is not attached to a SceneNode. It may be safer to wait to clear
the whole scene if you are unsure use clearScene.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=destroyLight>
<tr><td class=doctop colspan=2>Method destroyLight(l:Light)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Removes the light from the scene and destroys it based on a pointer.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Any pointers held to this light after calling this method will be invalid.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=destroySceneNode>
<tr><td class=doctop colspan=2>Method destroySceneNode(node:SceneNode)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Destroys a SceneNode.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>This allows you to physically delete an individual SceneNode if you want to. Note that this is not normally
recommended, it's better to allow SceneManager  to delete the nodes when the scene is cleared.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getRootSceneNode>
<tr><td class=doctop colspan=2>Method getRootSceneNode:SceneNode()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the SceneNode at the root of the scene hierarchy.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>The entire scene is held as a hierarchy of nodes, which allows things like relative transforms, general
changes in rendering state etc (See the SceneNode class for more info). In this basic SceneManager  class, the
application using Ogre is free to structure this hierarchy however it likes, since it has no real significance apart
from making transforms relative to each node (more specialised subclasses will provide utility methods for building
specific node structures e.g. loading a BSP tree).</p>
<p>However, in all cases there is only ever one root node of the hierarchy, and this method returns a pointer to it.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setAmbientLight>
<tr><td class=doctop colspan=2>Method setAmbientLight(colour:ColourValue)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the ambient light level to be used for the scene.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This sets the colour and intensity of the ambient light in the scene, i.e. the light which is 'sourceless'
and illuminates all objects equally. The colour of an object is affected by a combination of the light in the scene,
and the amount of light that object reflects (in this case based on the Material::ambient property).</p>
<p>By default the ambient light in the scene is ColourValue::Black, i.e. no ambient light. This means that any objects
rendered with a Material which has lighting enabled (see Material::setLightingEnabled) will not be visible unless you
have some dynamic lights in your scene.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setShadowFarDistance>
<tr><td class=doctop colspan=2>Method setShadowFarDistance(distance:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the default maximum distance away from the camera that shadows will be visible.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>You have to call this function before you create lights or the default distance of zero will be used.</p>
<p>Shadow techniques can be expensive, therefore it is a good idea to limit them to being rendered close to the camera if
possible, and to skip the expense of rendering shadows for distance objects. This method allows you to set the distance
at which shadows will no longer be rendered.</p>
<p><b>Note:</b> Each shadow technique can interpret this subtely differently. For example, one technique may use this
to eliminate casters, another might use it to attenuate the shadows themselves. You should tweak this value to suit your
chosen shadow technique and scene setup.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setShadowTechnique>
<tr><td class=doctop colspan=2>Method setShadowTechnique(technique:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the general shadow technique to be used in this scene.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>There are multiple ways to generate shadows in a scene, and each has strengths and weaknesses.
<ul>
<li>Stencil-based approaches can be used to draw very long, extreme shadows without loss of precision and the 'additive'
version can correctly show the shadowing of complex effects like bump mapping because they physically exclude the light
from those areas. However, the edges are very sharp and stencils cannot handle transparency, and they involve a fair amount
of CPU work in order to calculate the shadow volumes, especially when animated objects are involved.
<li>Texture-based approaches are good for handling transparency (they can, for example, correctly shadow a mesh which uses
alpha to represent holes), and they require little CPU overhead, and can happily shadow geometry which is deformed by a
vertex program, unlike stencil shadows. However, they have a fixed precision which can introduce 'jaggies' at long range
and have fillrate issues of their own.
</ul>
<p>We support 2 kinds of stencil shadows, and 2 kinds of texture-based shadows, and one simple decal approach. The 2 stencil
approaches differ in the amount of multipass work that is required - the modulative approach simply 'darkens' areas in shadow
after the main render, which is the least expensive, whilst the additive approach has to perform a render per light and adds
the cumulative effect, whcih is more expensive but more accurate. The texture based shadows both work in roughly the same way,
the only difference is that the shadowmap approach is slightly more accurate, but requires a more recent graphics card.</p>
<p>Note that because mixing many shadow techniques can cause problems, only one technique is supported at once. Also, you
should call this method at the start of the scene setup.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setShadowTextureSize>
<tr><td class=doctop colspan=2>Method setShadowTextureSize(texsize:Int = 512)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Set the size of the texture used for all texture-based shadows.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>The larger the shadow texture, the better the detail on texture based shadows, but obviously this takes more memory.
The default size is 512. Sizes must be a power of 2.</p>
<p><b>Note:</b> This is the simple form, see setShadowTextureConfig for the more complex form.</p></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setShadowUseLightClipPlanes>
<tr><td class=doctop colspan=2>Method setShadowUseLightClipPlanes(enable:Byte)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets whether when using a built-in additive shadow mode, user clip planes should be used to restrict light rendering.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setSkyBox>
<tr><td class=doctop colspan=2>Method setSkyBox(enable:Byte, materialName:String, distance:Float = 5000.0, drawFirst:Byte = True, orientation:Quaternion = Null, groupName:String = AUTODETECT_RESOURCE_GROUP_NAME)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Enables / disables a 'sky box' i.e. a 6-sided box at constant distance from the camera representing the sky.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>You could create a sky box yourself using the standard mesh and entity methods, but this creates a plane which the
camera can never get closer or further away from - it moves with the camera. (NB you could create this effect by creating
a world box which was attached to the same SceneNode as the Camera too, but this would only apply to a single camera
whereas this skybox applies to any camera using this scene manager).</p>
<p>The material you use for the skybox can either contain layers which are single textures, or they can be cubic textures,
i.e. made up of 6 images, one for each plane of the cube. See the TextureUnitState class for more information.</p>
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td>
<i>enable</i>
</td>
<td>
True to enable the skybox, false to disable it
</td>
</tr>
<tr>
<td>
<i>materialName</i>
</td>
<td>
The name of the material the box will use
</td>
</tr>
<td>
<i>distance</i>
</td>
<td>
Distance in world coorinates from the camera to each plane of the box. The default is normally OK.
</td>
</tr>
<tr>
<td>
<i>drawFirst</i>
</td>
<td>
If true, the box is drawn before all other geometry in the scene, without updating the depth buffer.
This is the safest rendering method since all other objects will always appear in front of the sky.
However this is not the most efficient way if most of the sky is often occluded by other objects.
If this is the case, you can set this parameter to false meaning it draws after all other geometry
which can be an optimisation - however you must ensure that the distance value is large enough that
no objects will 'poke through' the sky box when it is rendered.
</td>
</tr>
<tr>
<td>
<i>orientation</i>
</td>
<td>
Optional parameter to specify the orientation of the box. By default the 'top' of the box is deemed
to be in the +y direction, and the 'front' at the -z direction. You can use this parameter to rotate
the sky if you want.
</td>
</tr>
<tr>
<td>
<i>groupName</i>
</td>
<td>
the name of the resource group to which to assign the plane mesh.
</td>
</tr>
</table></td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=SceneNode>
<tr><td class=doctop colspan=2>Type SceneNode Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=SceneNode_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#attachObject>attachObject</a></td><td class=docright>
Adds an instance of a scene object to this node.
</td></tr>
<tr><td class=docleft width=1%><a href=#createChildSceneNode>createChildSceneNode</a></td><td class=docright>
Creates a new named SceneNode as a child of this node.
</td></tr>
<tr><td class=docleft width=1%><a href=#GetPosition>GetPosition</a></td><td class=docright>
Gets the position of the node relative to it's parent.
</td></tr>
<tr><td class=docleft width=1%><a href=#pitch>pitch</a></td><td class=docright>
Rotate the node around the X-axis.
</td></tr>
<tr><td class=docleft width=1%><a href=#roll>roll</a></td><td class=docright>
Rotate the node around the Z-axis.
</td></tr>
<tr><td class=docleft width=1%><a href=#SetPosition>SetPosition</a></td><td class=docright>
Sets the position of the node relative to it's parent.
</td></tr>
<tr><td class=docleft width=1%><a href=#translate>translate</a></td><td class=docright>
Moves the node along the Cartesian axes.<br>
</td></tr>
<tr><td class=docleft width=1%><a href=#yaw>yaw</a></td><td class=docright>
Rotate the node around the Y-axis.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=attachObject>
<tr><td class=doctop colspan=2>Method attachObject(obj:BaseObject)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Adds an instance of a scene object to this node.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=createChildSceneNode>
<tr><td class=doctop colspan=2>Method createChildSceneNode:SceneNode(entityName:String = "", translate:Vector3 = Null, rotate:Quaternion = Null)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Creates a new named SceneNode as a child of this node.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright><p>This creates a child node with a given name, which allows you to look the node up from the parent
which holds this collection of nodes.</p>
<p><b>Parameters:</b></p>
<table cellpadding="4" cellspacing="4" border="0">
<tr>
<td><i>translate</i></td><td>Initial translation offset of child relative to parent</td>
</tr>
<tr>
<td><i>rotate</i></td><td>Initial rotation relative to parent</td>
</tr>
</table></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=GetPosition>
<tr><td class=doctop colspan=2>Method GetPosition:Vector3()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets the position of the node relative to it's parent.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=pitch>
<tr><td class=doctop colspan=2>Method pitch(angle:Float, relativeTo:Int = TS_PARENT)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Rotate the node around the X-axis.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=roll>
<tr><td class=doctop colspan=2>Method roll(angle:Float, relativeTo:Int = TS_PARENT)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Rotate the node around the Z-axis.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=SetPosition>
<tr><td class=doctop colspan=2>Method SetPosition(x:Float, y:Float, z:Float)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the position of the node relative to it's parent.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=translate>
<tr><td class=doctop colspan=2>Method translate(x:Float, y:Float, z:Float, relativeTo:Int = TS_PARENT)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Moves the node along the Cartesian axes.<br></td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=yaw>
<tr><td class=doctop colspan=2>Method yaw(angle:Float, relativeTo:Int = TS_PARENT)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Rotate the node around the Y-axis.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=Technique>
<tr><td class=doctop colspan=2>Type Technique Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=Technique_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#getPass>getPass</a></td><td class=docright>
Retrieves the Pass with the given index.
</td></tr>
<tr><td class=docleft width=1%><a href=#getPassByName>getPassByName</a></td><td class=docright>
Retrieves the Pass matching name.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getPass>
<tr><td class=doctop colspan=2>Method getPass:Pass(index:Int)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Retrieves the Pass with the given index.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getPassByName>
<tr><td class=doctop colspan=2>Method getPassByName:Pass(passName:String)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Retrieves the Pass matching name.</td></tr>
<tr><td class=docleft width=1%>Information</td><td class=docright>Returns 0 if name match is not found.</td></tr>
</table>
<br>
<table class=doc width=100% cellspacing=3 id=Viewport>
<tr><td class=doctop colspan=2>Type Viewport Extends BaseObject</td></tr>
</table>
<table class=doc width=90% align=center><tr ><th class=doctop colspan=2 align=left><a name=Viewport_methods></a>Methods Summary</th></tr>
<tr><td class=docleft width=1%><a href=#getActualHeight>getActualHeight</a></td><td class=docright>
Gets one of the actual dimensions of the viewport, a value in pixels.
</td></tr>
<tr><td class=docleft width=1%><a href=#getActualWidth>getActualWidth</a></td><td class=docright>
Gets one of the actual dimensions of the viewport, a value in pixels.
</td></tr>
<tr><td class=docleft width=1%><a href=#setBackgroundColour>setBackgroundColour</a></td><td class=docright>
Sets the initial background colour of the viewport (before rendering).
</td></tr>
<tr><td class=docleft width=1%><a href=#setCamera>setCamera</a></td><td class=docright>
Sets the camera to use for rendering to this viewport.
</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getActualHeight>
<tr><td class=doctop colspan=2>Method getActualHeight:Int()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets one of the actual dimensions of the viewport, a value in pixels.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=getActualWidth>
<tr><td class=doctop colspan=2>Method getActualWidth:Int()</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Gets one of the actual dimensions of the viewport, a value in pixels.</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setBackgroundColour>
<tr><td class=doctop colspan=2>Method setBackgroundColour(r:Float, g:Float, b:Float, a:Float = 1.0)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the initial background colour of the viewport (before rendering).</td></tr>
</table>
<table class=doc width=100% cellspacing=3 id=setCamera>
<tr><td class=doctop colspan=2>Method setCamera(cam:Camera)</td></tr>
<tr><td class=docleft width=1%>Description</td><td class=docright>Sets the camera to use for rendering to this viewport.</td></tr>
</table>
<br>
<h2 id=modinfo>Module Information</h2>
<table width=100%>
<tr><th width=1%>Name</th><td>sedm.bo3d</td></tr>
<tr><th width=1%>Description</th><td>Ogre3D based 3D Engine for BlitzMax</td></tr>
<tr><th width=1%>Licence</th><td>Ogre3D Engine License</td></tr>
<tr><th width=1%>Author</th><td>Jens [bruZard] Henschel</td></tr>
</body></html>
